import sdk from '../core/index';
import { analysisIntent } from "../core/tool/baseScene";
import { mathType } from "../core/tool/face";
import { Icard, ButtonIntentConfig } from "../core/tool/Icard";
import bag_component from "./bag_component";
import gameCfg from "../gameCfg";
import { UserLevel } from "../shared/face";
import { BaseService } from "../service/BaseService";

/**
 * 基础组件 - 主要负责UI交互和用户基本信息管理
 * 职责：
 * 1. 管理用户基本信息状态
 * 2. 处理用户信息修改
 * 3. 显示用户信息界面
 */
import component, { ComType } from "../core/tool/component";
export default class base_component extends component {
    id: string = sdk.tool.common.uuid;
    emoji: string = '🧙';
    nickName: string = `匿名${sdk.tool.common.uuid.slice(0, 4)}`;
    show: string = 'https://dew-1251587647.cos.ap-guangzhou.myqcloud.com/show_player/1.png';
    // 权限等级
    sys_leve: UserLevel = UserLevel.开发者;
    
    constructor() {
        super();
    }
    
    /**
     * 初始化组件
     */
    init() {

    }
    client_menu(){
        let card = sdk.tool.card.create();
        card.title('📕基础指令');
        card.l(`下午好~${this.emoji}${this.nickName}[UID:${this.id}]`);
        card.title('🧙角色相关');
        card.l('[背包][血统][技能]');
        card.l('[装备][属性][宠物]');
        this.client_text(card.getText());
    }
    
    /**
     * 注册基础信息按钮意图的通用方法
     * @param card 卡片对象
     */
    private registerBaseButtonIntents(card: any): void {
        // const buttonConfigs = [
        //     { text: '改名', action: 'client_reName', mathType: mathType.完全匹配 }
        // ];
        
        // this.registerButtonIntents(card, buttonConfigs);
    }

    /**
     * 测试方法
     * @param cfg 配置
     */
    test(cfg: any) {
        this.nickName = cfg.name;
    }
 

    /**
     * 设置用户名
     * @param name 用户名
     */
    setName(name: string) {
        this.nickName = name;
    }
    
    /**
     * 设置用户展示图片
     * @param show 展示图片URL
     */
    setShow(show: string) {
        const result = BaseService.setUserShow(show);
        if (result.valid) {
            this.show = show;
            this.client_text(result.message);
        } else {
            this.client_text(result.message);
        }
    }
    
    /**
     * 获取用户状态信息
     * @returns 用户状态信息
     */
    getUserStatus() {
        return BaseService.getUserStatus({
            id: this.id,
            nickName: this.nickName,
            sys_leve: this.sys_leve,
            show: this.show
        });
    }
    
    /**
     * 检查是否有管理员权限
     * @returns 是否有管理员权限
     */
    hasAdminPermission(): boolean {
        return BaseService.hasAdminPermission(this.sys_leve);
    }
    
    /**
     * 检查是否有开发者权限
     * @returns 是否有开发者权限
     */
    hasDeveloperPermission(): boolean {
        return BaseService.hasDeveloperPermission(this.sys_leve);
    }
}

